//! # RustCloud 服务注册发现库
//!
//! 提供了完整的服务注册发现解决方案，支持多种主流的注册中心，包括 Nacos、Consul 和 Eureka。
//! 该库实现了统一的注册发现接口，支持健康检查、自动服务移除、负载均衡等高级功能。
//!
//! ## 核心功能
//!
//! * **多注册中心支持** - 统一接口支持 Nacos、Consul、Eureka 三大主流注册中心
//! * **服务健康检查** - 自动监控服务实例健康状态，及时发现异常实例
//! * **自动服务移除** - 检测到不健康实例时自动从注册表中移除
//! * **服务发现缓存** - 智能缓存机制提高服务发现性能
//! * **故障转移** - 支持多个注册中心实例的故障转移
//! * **事件通知** - 实时监听服务变更事件
//!
//! ## 支持的注册中心
//!
//! ### Nacos
//! * 阿里巴巴开源的服务发现和配置管理平台
//! * 支持命名空间、分组、元数据等高级特性
//! * 内置健康检查和服务保护机制
//!
//! ### Consul
//! * HashiCorp 开源的服务网格解决方案
//! * 支持多数据中心、KV存储、健康检查
//! * 强一致性保证和分布式锁支持
//!
//! ### Eureka
//! * Netflix 开源的服务发现组件
//! * 基于REST的服务注册和发现
//! * AP模型，优先保证可用性
//!
//! ## 快速开始
//!
//! ```rust
//! use rustcloud_registry::*;
//! use rustcloud_core::{ServiceInstance, RegistryConfig, RegistryType};
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     // 创建 Nacos 注册中心
//!     let config = RegistryConfig::new(RegistryType::Nacos, "127.0.0.1:8848");
//!     let registry = NacosRegistry::new(config).await?;
//!     
//!     // 注册服务实例
//!     let instance = ServiceInstance::new("user-service", "127.0.0.1", 8080, "http");
//!     registry.register(instance.clone()).await?;
//!     
//!     // 发现服务实例
//!     let instances = registry.discover("user-service").await?;
//!     
//!     // 启动健康检查
//!     let health_checker = HealthChecker::new(registry.clone());
//!     health_checker.start().await?;
//!     
//!     Ok(())
//! }
//! ```
//!
//! ## 高级用法
//!
//! ### 复合注册中心
//! ```rust
//! let composite = CompositeRegistry::new()
//!     .add_registry(Box::new(nacos_registry))
//!     .add_registry(Box::new(consul_registry));
//! ```
//!
//! ### 自定义健康检查
//! ```rust
//! let health_config = HealthCheckConfig {
//!     interval: Duration::from_secs(30),
//!     timeout: Duration::from_secs(5),
//!     failure_threshold: 3,
//! };
//! ```
//!
//! ## 配置示例
//!
//! ### Nacos 配置
//! ```yaml
//! registry:
//!   registry_type: nacos
//!   server_addr: "127.0.0.1:8848"
//!   namespace: "public"
//!   group: "DEFAULT_GROUP"
//! ```
//!
//! ### Consul 配置
//! ```yaml
//! registry:
//!   registry_type: consul
//!   server_addr: "127.0.0.1:8500"
//!   datacenter: "dc1"
//! ```

pub mod nacos;
pub mod consul;
pub mod eureka;
pub mod registry;
pub mod health_checker;
pub mod auto_removal;

#[cfg(test)]
mod tests;

pub use nacos::*;
pub use consul::*;
pub use eureka::*;
pub use registry::*;
pub use health_checker::*;
pub use auto_removal::*;

// 导出核心配置类型
pub use registry::RegistryConfig;